#ifndef __PROPERTIES_ITEM__
#define __PROPERTIES_ITEM__ 1

#include <QVector>
#include <QVariant>

class CPropertiesItem
{
public:
	CPropertiesItem(const QVector<QVariant>& pData, CPropertiesItem* pParent = NULL);
	virtual ~CPropertiesItem();

	CPropertiesItem* child(int pNum);
	void setChild(int pNum, CPropertiesItem* pItem);
	CPropertiesItem* parent();
	int childCount() const;
	bool insertChildren(int pPos, int pCnt, int pColumns);
	bool removeChildren(int pPos, int pCnt);
	int childNumber() const;
	int columnCount() const;
	QVariant data(int pColumn) const;
	bool setData(int pColumn, const QVariant& pValue);

private:
	CPropertiesItem(const CPropertiesItem& );
	CPropertiesItem& operator=(const CPropertiesItem& );

	QVector<QVariant> mData;
	CPropertiesItem* mParent;
	QList<CPropertiesItem*> mChildren;
};

#endif /* __PROPERTIES_ITEM__ */
